/**
 * 测试行选中执行的回调函数
 */
function testcallbacufunc(pageid,reportid,selectedTrObjArr,deselectedTrObjArr)
{
	var str=getTrObjsValue(deselectedTrObjArr);
	if(str!=null&&str!='')
	{
		alert('本次被取消选中的行：'+str);
	}
	str=getTrObjsValue(selectedTrObjArr);
	if(str!=null&&str!='')
	{
		alert('本次选中的行：'+str);
	}
	var allSelectedTrObjsArr=getAllSelectedTrObjs(pageid,reportid);//取到所有选中的行对象
	str=getTrObjsValue(allSelectedTrObjsArr);
	if(str!=null&&str!='')
	{
		alert('被选中的所有行：'+str);
	}
}
/**
 * 检查密码强度成绩
 * @param strPassword 密码
 */
function checkPwdGrade(strPassword){
	var grade=getPassswordGrade(strPassword);
	if(grade<0)grade=0;
	document.all.Grade.innerHTML=""+grade+"";
	if(grade<60){
		document.all.strength_L.style.background="#FF0000";
		document.all.strength_M.style.background="#cccccc";
		document.all.strength_H.style.background="#cccccc";
	}
	else if(grade<85){
		document.all.strength_L.style.background="#FFFF00";
		document.all.strength_M.style.background="#FFFF00";
		document.all.strength_H.style.background="#cccccc";		
	}
	else{
		document.all.strength_L.style.background="#00FF00";
		document.all.strength_M.style.background="#00FF00";
		document.all.strength_H.style.background="#00FF00";
	}
}
/**
 * 返回密码的强度成绩
 * @param strPassword 密码
 * @returns 密码强度成绩
 */
function getPassswordGrade(strPassword){
	//初始分数=0,临时字符串=密码，有数字=0，有小写=0，有大写=0，有特殊字符=0
	var grade=0,strTemp=strPassword,hasNum=0,hasLcase=0,hasUcase=0,hasSchar=0;
	grade+=strPassword.length*3;
	//每个数字加3分，两个连续的数字按照1个计算
	var reNum = new RegExp(/(\d{1,2})/);
	while(strTemp.match(reNum)){
		hasNum=1;
		grade+=3;
		strTemp=strTemp.replace(reNum,'');
	}
	strTemp=strPassword;
	//每个小写字母加5分，两个连续的小写字母按照1个计算
	var reNum = new RegExp(/([a-z]{1,2})/);
	while(strTemp.match(reNum)){
		grade+=5;
		hasLcase=1;
		strTemp=strTemp.replace(reNum,'');
	}
	strTemp=strPassword;
	//每个大写字母加7分，两个连续的大写字母按照1个计算
	var reNum = new RegExp(/([A-Z]{1,2})/);
	while(strTemp.match(reNum)){
		grade+=7;
		hasUcase=1;
		strTemp=strTemp.replace(reNum,'');
	}
	strTemp=strPassword;
	//每个特殊字符加10分，两个连续的特殊字符按照1个计算
	var reNum = new RegExp(/(\W{1,2})/);
	while(strTemp.match(reNum)){
		grade+=10;
		hasSchar=1;
		strTemp=strTemp.replace(reNum,'');
	}
	//重复字符检测，密码中重复3次以上的字符，每重复一次减5分
	var reNum = new RegExp(/(\S{1})/);
	strTemp=strPassword;
	while(strTemp.match(reNum)){
		var startlength=strTemp.length;
		if(startlength<4){
			break;
		}
		var strTemp1 = strTemp.match(reNum)[0];
		while(strTemp.indexOf(strTemp1)>-1)
		strTemp=strTemp.replace(strTemp1,'');
		if(startlength-strTemp.length>3){
			grade-=(startlength-strTemp.length)*6;
		}
	}
	if(hasNum==1&&hasLcase==1&&hasUcase==1&&hasSchar==1){
		grade+=25;
	}
	else if(hasNum==1&&(hasLcase==1||hasUcase==1)&&hasSchar==1){
		grade+=15;
	}
	else if((hasLcase==1||hasUcase==1)&&(hasSchar==1||hasNum==1)){
		grade+=10;
	}
	return grade;
}
/**
 * 校验修改密码提交数据
 * @param pageid
 * @param reportid
 * @param updatetype
 * @param dataObjArr
 * @returns 成功返回True，失败提示失败原因，返回False
 */
function checkPasswordChange(pageid,reportid,updatetype,dataObjArr){
	var dataObjTmp;
	if(dataObjArr && dataObjArr.length==1){
		dataObjTmp=dataObjArr[0];
		if(dataObjTmp["[NOISSIMREP_YALPSIDNON]Password"]==dataObjTmp["[NOISSIMREP_YALPSIDNON]Password_old"]){
			wx_alert("登录密码没有修改，如果不想修改密码请点击“关闭”按钮");
			return WX_SAVE_TERMINAT;
		}
		else if(dataObjTmp["[NOISSIMREP_YALPSIDNON]Password"].length==0){
			wx_alert("登录密码不能为空");
			return WX_SAVE_TERMINAT;
		}
		else if(dataObjTmp["[NOISSIMREP_YALPSIDNON]RePassword"]!=dataObjTmp["[NOISSIMREP_YALPSIDNON]Password"]){
			wx_alert("密码和确认密码不一致");
			return WX_SAVE_TERMINAT;
		}
	}
	else{
		alert('操作异常');
		return WX_SAVE_TERMINAT;
	}
	return WX_SAVE_CONTINUE;
}
/**
 * 关闭修改密码窗口
 * @param paramsObj
 */
function closeChangePassword(paramsObj){
	try{
	parent.refreshComponentDisplay('base_SysUserManage','report1');
	}
	catch(Err){}
	parent.ymPrompt.doHandler('close',null);
}
/**
 * 设置密码按钮功能实现
 * @param pageid 页面PageID
 * @param reportid 报表ReportID
 */
function resetPassword(pageid,reportid){
	var allSelectedTrObjsArr=getAllSelectedTrObjs(pageid,reportid);//取到所有选中的行对象
	if(allSelectedTrObjsArr==null||allSelectedTrObjsArr.length==0){
		wx_alert("请选择用户");
	}
	else if(allSelectedTrObjsArr.length!=1){
		wx_alert("设置密码时只能选择一条用户信息");
	}
	else{
		var tdChilds=allSelectedTrObjsArr[0].getElementsByTagName('TD');
		for(var j=0;j<tdChilds.length;j++)
		{
			var name=tdChilds[j].getAttribute('name');//获取当前列对应的<col/>的列名
			if(name=="ID"){
				var rowID=tdChilds[j].getAttribute('value');
				wx_winpage("ShowReport.wx?PAGEID=base_SetPassword&UserID="+rowID,"设置密码",400,300,false,false,null); 
			}
		}
	}
}

function getTrObjsValue(trObjsArr)
{
	if(trObjsArr==null||trObjsArr.length==0) return '';
	var str='';
	for(var i=0;i<trObjsArr.length;i++)
	{
		var tdChilds=trObjsArr[i].getElementsByTagName('TD');
		for(var j=0;j<tdChilds.length;j++)
		{
			var name=tdChilds[j].getAttribute('name');//获取当前列对应的<col/>的列名
			var value=tdChilds[j].getAttribute('value');//获取选中行的当前列的数据
			if(name&&name!='')
			{
				str=str+'[列名：'+name+'；列值：'+value+']';
			}
		}
	}
	return str;
}


var tmp=0;
function testBeforeSaveCallBack(pageid,reportid,updatetype,dataObjArr)
{
	alert('将保存页面ID:::'+pageid+';;;报表ID:::'+reportid);
	printSavingData(dataObjArr);
	tmp++;
	if(tmp%2===0)
	{
		alert('本次中断保存数据操作');
		return WX_SAVE_TERMINAT;
	}
	alert('本次执行保存数据操作');
	return WX_SAVE_CONTINUE;
}

function testAfterSaveCallback(paramsObj)
{
	//var reportguid=getComponentGuidById(paramsObj.pageid,paramsObj.reportid);
	 refreshComponentDisplay(paramsObj.pageid,'report1',false);
}

function printSavingData(dataObjArr)
{
	var dataObjTmp;
	for(var i=0;i<dataObjArr.length;i++)
	{
		dataObjTmp=dataObjArr[i];
		alert('本条记录的操作类型：'+dataObjTmp['WX_TYPE']);
		var rowdata='';
		for(var key in dataObjTmp)
		{
			rowdata=rowdata+key+':::'+dataObjTmp[key]+';;;';
		}
		alert(rowdata);
	}
}

function testonload(pageid,reportid)
{
	alert('加载完报表页面ID：'+pageid+'；报表ID：'+reportid);
}

function validatePasswordInput(pageid,reportid,updatetype,dataObjArr)
{
	for(var i=0;i<dataObjArr.length;i++)
	{
		dataObjTmp=dataObjArr[i];
		if(dataObjTmp['WX_TYPE']=='delete') continue;//当前是在做删除操作
		var Password=dataObjTmp['Password'];
		var Password1=dataObjTmp['Password1'];
		if(Password!=Password1)
		{//两次输入的出生日期不一致
			wx_alert('两次输入的密码不一致');
			return WX_SAVE_TERMINAT;
		}
	}
	return WX_SAVE_CONTINUE;
}